package com.sykj.servies.impl;

import com.sykj.dao.LoginDao;
import com.sykj.dao.ProductDao;
import com.sykj.pojo.Product;
import com.sykj.pojo.User;
import com.sykj.pojo.UserExample;
import com.sykj.servies.LoginServies;
import com.sykj.servies.UserRoleServies;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service
public class LoginServiesImpl implements LoginServies{

    @Autowired
     LoginDao loginDao;
    @Autowired
    UserRoleServies userRoleServies;
    //商品
    @Autowired
    ProductDao productDao;
    //登录
    @Override
    public User getByname(String name) {
        UserExample example = new UserExample();
        example.createCriteria().andNameEqualTo(name);
        List<User> users = loginDao.selectByExample(example);
        if (users.isEmpty()) return null;
        return users.get(0);
    }

    //修改
    @Override
    public void update(User user) {
        loginDao.updateByPrimaryKeySelective(user);
    }
    //这个方法第一个代替了（getByname），没有使用
    @Override
    public String getPassword(String name) {
        User u = getByname(name);
        if (null == u) return null;
        return u.getPassword();
    }

    //获取用户
    /**
     * 使得调用方法的用户不需要区分返回值，即不需要判断返回值是否为null，
     * @return
     */
    @Override
    public List<User> list() {
        return loginDao.selectByExample(null);
    }

    //添加管理员
    @Override
    public void add(User user) {
        loginDao.insert(user);
    }
    //根据id删除角色
    @Override
    public void delete(Long id) {
        //删除管理员
        loginDao.deleteByPrimaryKey(id);
        //删除管理员对应的角色
        userRoleServies.deleteByUser(id);
    }

    //获取一个管理员
    @Override
    public User get(Long id) {
     return loginDao.selectByPrimaryKey(id);
    }

    //启用管理员
    @Override
    public String enableStatus(String name) {
        loginDao.enableStatus(name);
        return "success";
    }

    //停用管理员
    @Override
    public String stopStatus(String name){
        loginDao.stopStatus(name);
        return "success";
    }

    //根据商品id获得所属商家（管理员即商家）
    @Override
    public User getUserByPid(int id) {
        Product product = productDao.selectByPrimaryKey(id);
        User user = loginDao.selectByPrimaryKey(product.getBid());
        return user;
    }

}
